Computer systems traditionally use keyboards and pointer mechanisms to allow users to select among a set of items. Some hand held devices (e.g., Palm Pilots) use touch sensitive LCD screens. Other small digital devices, such as personal digital assistants (“PDA's”, e.g., REX) and cellular telephones, use an LCD and up/down switches or numeric keypads to allow users to select among a set of items.
Keyboards and traditional pointer mechanisms (e.g., a track ball or mouse) are far too large for use when space is at a premium or portability is required. Touch sensitive LCD's are power-hungry, expensive, hard to interface with, and do not scale well as devices become very small.
Small and inexpensive user interfaces are typically found on devices that present users with only a small number of well defined choices. For example, the “scan” button of many car radios allows a user to select from available radio stations. Pressing this button causes the radio to search through the AM or FM band for the next station with a signal strength that exceeds some threshold. Additional pushes on the scan button will continue to search the band, eventually returning to the original station (assuming the radio remains in the same area). A problem with the scan button is that it is completely deterministic. The same sequence of stations is selected by repeated pushes of the scan button. Unfortunately, this determinism sacrifices a large amount of potentially useful information. Although the scan button has the virtues of small size and low cost, it is not configured to learn from past scans to improve the selection process.
If there are hundreds or thousands of selection choices, interfaces such as the scan button break down completely. Consider a portable MP3 player with the songs (i.e., recordings of musical compositions) of a thousand compact disks (CD's) burned into its ROM. Clearly, a simple scan button is not sufficient, and yet the device is too small for a complex array of buttons and an appropriately sized LCD sufficient to facilitate a suitable user selection mechanism.
Therefore, there is needed a system and method that allows a user to select from hundreds or thousands of choices using a small and inexpensive interface.